Generally, the concept of virtualization in information processing systems allows multiple instances of one or more operating systems to run on a single system, even though each operating system (OS) is designed to have complete, direct control over the system and its resources. Virtualization is typically implemented by using software (e.g., a virtual machine monitor, or a “VMM”) to present to each OS a “virtual machine” (“VM”) having virtual resources, including one or more virtual processors, that the OS may completely and directly control, while the VMM maintains a system environment for implementing virtualization policies such as sharing and/or allocating the physical resources among the VMs (the “virtualization environment”).
The virtualization technologies have wide applications in the computer field with the development of computer systems. For example, such virtualization technologies can be used to implement a virtual desktop application which runs within a virtual machine of a host and accessed from a client over a network, such as, for example, Red Hat® Enterprise Virtualization, a product of Red Hat, Inc. of Raleigh, N.C.
Typically, after a client machine starts up, a user has to log onto a Web portal via a Web browser to select a VM (e.g., a virtual desktop) to be launched and accessed by the client. That is, a VM is launched in response to receiving a client request for a VM. Launching a VM may take a relatively long period of time. Additionally, when multiple clients request VMs at the same time, this can cause an increased load on a host machine, which may further increase an amount of time that users have to wait. In some situations, VMs may even fail to load properly if too many users request VMs at the same time.